package unipampa.extensions.games.pampaPife;

import java.util.Random;
import java.lang.Boolean;


public class PampaPifeBaralho {
	private final int[][][] cartas = new int[4][13][2];
	
	public PampaPifeBaralho(){
		inicializaBaralho();
	}
	
	private void inicializaBaralho(){
		for (int i=0;i<4;i++){
			for (int j=0;j<13;j++){
				for (int k=0;k<2;k++){
					cartas[i][j][k]=0;
				}
			}
		}
	}
	
	public Carta pegaUmaCarta(int idUsuario){
		Random random = new Random();
		Boolean semCarta = true;
		Carta c = new Carta();
		do{
			int randNaipe = random.nextInt(4);
			int randValor = random.nextInt(13);
			if (cartas[randNaipe][randValor][0]==0){
				cartas[randNaipe][randValor][0] = idUsuario;
				c = new Carta(randValor,randNaipe,0);
				semCarta = false;
			}
			else if (cartas[randNaipe][randValor][1]==0){
				cartas[randNaipe][randValor][1] = idUsuario;
				c = new Carta(randValor,randNaipe,1);
				semCarta = false;
			}
		}while (semCarta);
		return c;
	}
	public Carta[] pegaCartas(int idUsuario){
		Carta cartasSorteadas[] = new Carta[9];
		for (int i=0; i<9;i++){
			cartasSorteadas[i] = pegaUmaCarta(idUsuario);
		}
		return cartasSorteadas;
	}
	public Carta compraCarta(int idUsuario){
		return pegaUmaCarta(idUsuario);
	}
	public void paraOMonte(Carta c) {
		cartas[c.getNaipe()][c.getValor()][c.getBaralho()]=99;
	} 
	public void atualizaDono(Carta c, int idUsuario){
		cartas[c.getNaipe()][c.getValor()][c.getBaralho()]=idUsuario;
	}
	
	public void devolveCartas(int idUsuario){
		for (int i=0;i<4;i++){
			for (int j=0;j<13;j++){
				for (int k=0;k<2;k++){
					if ( cartas[i][j][k]== idUsuario )
						cartas[i][j][k]=0;
				}
			}
		}
	}
}
